/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package beans;

import bc.MonedaDelegate;
import edu.upn.sigemfi.ope.be.Moneda;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author Hiro
 */
public class MonedaController {

    private Moneda moneda;
    private MonedaDelegate delegate;
    private String criterio;

    public MonedaController() {
        delegate = new MonedaDelegate();
    }

    public String getCriterio() {
        return criterio;
    }

    public void setCriterio(String criterio) {
        this.criterio = criterio;
    }

    public MonedaDelegate getDelegate() {
        return delegate;
    }

    public void setDelegate(MonedaDelegate delegate) {
        this.delegate = delegate;
    }

    public Moneda getMoneda() {
        return moneda;
    }

    public void setMoneda(Moneda moneda) {
        this.moneda = moneda;
    }

//    public SelectItem[] getMonedaSI() throws Exception {
//        SelectItem[] select = null;
//        try {
//            List<Moneda> monedas = delegate.getMonedas();
//            if (lista != null) {
//                select = new SelectItem[monedas.size() + 1];
//                int i = 0;
//                select[i++] = new SelectItem(null, "Seleccione un moneda");
//                for (Moneda m : monedas) {
//                    select[i++] = new SelectItem(m.getDescripcion(), m.getDescripcion());
//                }
//            } else {
//                select = new SelectItem[1];
//                select[0] = new SelectItem(null, "no hay monedas registradas");
//            }
//
//        } catch (Exception e) {
//            throw new Exception("Monedas" + e.getMessage());
//        }
//        return select;
//    }
    public SelectItem[] getMonedaSI() {
        SelectItem[] select = null;
        try {
            List<Moneda> lista = getMonedas();
            if (lista != null) {
                select = new SelectItem[lista.size() + 1];
                int i = 0;
                select[i++] = new SelectItem(null, "Seleccione un tipo de moneda ");
                for (Moneda go : lista) {
                    select[i++] = new SelectItem(go, go.getDescripcion());
                }
            } else {
                select = new SelectItem[1];
                select[0] = new SelectItem(null, "No se encontraron Tipos de Moneda");
            }
        } catch (Exception e) {
            mostrarMensaje(e.getMessage(), e.getMessage(), FacesMessage.SEVERITY_ERROR);
            select = new SelectItem[1];
            select[0] = new SelectItem(null, "Error al consultar los datos");
        }
        return select;
    }

    public Moneda buscar_Moneda(Long id) throws Exception {
        return buscar(id);
    }

    public List<Moneda> getMonedas() {
        try {
            return delegate.getMonedas();
        } catch (Exception e) {
            mostrarMensaje(e.getMessage(), e.getMessage(), FacesMessage.SEVERITY_ERROR);
        }
        return null;
    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage());
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }

    public Moneda buscar(Long idMoneda) {
        try {
            return delegate.buscarPorId(idMoneda);
        } catch (Exception e) {
            mostrarMensaje(e.getMessage(), e.getMessage(), FacesMessage.SEVERITY_ERROR);
        }
        return null;
    }
}